﻿--[[
   @brief    login model
   @author   amadeusyu
   @version  1.0
   @date     2015-03-12
--]]

login_model =
{
    im_login_infomation = nil; -- im登陆成功后的信息，参考C++对应social_network::SOCIAL_NETWORK_EVENT_IM_INITED
    current_view_id = CID_LOGIN_ENTER;  -- 当前展示的subview id
    last_view_id = 0;
    login_ad_url = "";
    netbar_mode = 0;  -- 为了在网吧版本也创建tedit
    netbar_name = "";
    current_uin = "0";
    main_uin = ""; -- 别在登录成功前和登录过程中使用，如果是登录过程中，请响应LOGIN_ON_LOGIN_SUCCESS,然后从参数里面取！
    main_tgp_id = ""; -- LOGIN_ON_LOGIN_SUCCESS消息中赋值
    current_service_id = 0;
    current_game_id = 0;
    total_progress = 0;
    pwd_saved = false;  -- 是否保存密码
    mask_valid = false;  -- 代表tedit中保存的密码是否被修改
    pva_list = ierd_tgp.login_mgr.PvaInfoListPod:new();  -- 快速登录列表
    history_list = ierd_tgp.login_mgr.PvaInfoListPod:new();  -- 历史帐号列表
    ad_info = {pic = nil, link = nil, game_id = nil};  -- 登录广告
    sub_account_list = ierd_tgp.login_mgr.SubAccountListPod:new();  -- 小号列表
    last_pg_type = 0;  -- 最后使用的密保类型
    capslock_on = false;  -- capslock状态
    is_tgp_login = true;  -- 是否tgp登录(tgp启动时的登录)
    modal_no = 0;  -- DoModal返回值
    login_mgr = nil;
    reveive_pg_time = os.time();
    pg_info = {};  -- 密保信息
    pg_types = {
        [2] = LoadStr("WE_GAME_LOGIN_TGP_MODEL_LOCK_TELL"),
        [4] = LoadStr("WE_GAME_LOGIN_TGP_MODEL_TELL");
        [6] = LoadStr("WE_GAME_LOGIN_TGP_MODEL_QQ");
    };
    is_new_user = false;
    tedit_created = 0;
    scan_progress_end = false;   
    passguard_checking = false; -- 正在进行密保验证

    --社交灰度策略
    social_user_level = 0; -- 0 -- 普通用户， 1 -- 灰度一级用户， 2 --灰度二级用户
    social_invite_code_count  = 10;

    login_wnd_height = 264;
    login_wnd_width = 514;

    is_exist_local_user_login_record = false; -- 本地未保存帐号信息
    is_hide_quick_login_ = false;   -- 是否是隐藏快速登录

    is_login_ad_dispaly_complete = false;
    -- 处理登陆tgp服务器失败的提示
    login_tgp_srv_succ = true;
    is_already_show_login_fail_tip = false;

    is_offline = false; -- 仅表示网络是否断开状态。判断离线状态使用running_mode
    logining_uin = 0;

    NORMAL_MODE = 1;
    OFFLINE_MODE = 0;
    running_mode = NORMAL_MODE; -- 使用离线模式

    init = function()
        login_model.login_mgr =
            base_utility.get_component_adapter("ILogin_mgr",
                "ierd_tgp.login_mgr.GetLoginMgr();");
    end;
    
    -- 伪造数据
    fake_data = function()
        login_model.pg_info.count = 3;
        login_model.pg_info.types = {2;4;6};
        login_model.pg_info.uin = 349826237;
        login_model.pg_info.server_id = 12312;
        login_model.pg_info.sys_number = "1231231238745";
        login_model.pg_info.mobile_msg = "hellp";
        login_model.pg_info.mobile = "186****4103";
    end;

    -- 判断某个uin是否有保存密码
    if_pwd_saved = function(uin)
        if uin == "" then
            return false;
        end
        for i = 0, login_model.history_list.count - 1, 1 do
            local uin1 = tostring(login_model.history_list.list[i].uin);
            if uin1 == uin then
                return login_model.history_list.list[i].saved_pwd;
            end
        end
        return false;
    end;

    -- 获取某个uin对应的头像地址
    get_headpic = function(uin)
        if uin == "" then
            return "";
        end
        for i = 0, login_model.history_list.count - 1, 1 do
            local uin1 = tostring(login_model.history_list.list[i].uin);
            if uin1 == uin then
                return login_model.history_list.list[i].head;
            end
        end
        return "";
    end;

    is_uin_binded = function(uin)
        if nil == login_model.sub_account_list then
            return false;
        end;

        for i = 0, login_model.sub_account_list.count - 1, 1 do
            local uin1 = tostring(login_model.sub_account_list.uins[i]);
            if uin1 == uin then
                return true;
            end
        end
        return false;
    end;

    has_pva = function()
        if login_model.pva_list == nil then
            return false;
        end        
        return login_model.pva_list.count > 0;
    end;
};

login_model.init();